Distributed recording of content

ABSTRACT

A method is disclosed for distributed recording of content in a client system having a home network connecting a content broker and a plurality of set-top boxes (STBs) with digital video recording capability. In a requesting STB, a command is received from a user to begin recording a content item. A query is sent from the requesting STB to the content broker to determine whether the content item is being recorded by any other STB of the plurality of STBs. A response is received from the content broker. If the response indicates that none of the plurality of STBs is then currently recording the content item, the content item is recorded in the requesting STB. If the response identifies a recording STB that is then currently recording the requested content, an internal content list is updated in the requesting STB to identify the recording STB.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of and claims the benefitof priority to U.S. application Ser. No. 13/619,156, filed on Sep. 14,2012, now issued as U.S. Pat. No. 8,973,084, which is a continuation ofU.S. application Serial No. 12/982,935, filed on Dec. 31, 2010, nowissued as U.S. Pat. No. 8,272,024, the contents of which are herebyincorporated by reference.

BACKGROUND

A system for distributing video content is typically maintained by aservice provider, which can be, for example, a television serviceprovider (e.g., a national or local television network), a cabletelevision service provider or multiple system operator (MSO), anInternet service provider, a satellite broadcast system serviceprovider, or other suitable service provider.

High definition (HD) video content is becoming increasingly prevalent.In a conventional system, HD content and standard definition (SD)content can be streamed to media players/servers, such as a set-top box(STB), which may include personal video recorder (PVR) or digital videorecorder (DVR) functionality.

Conventional PVR/DVR-enabled devices are able to store the streamedcontent, e.g., by recording the streamed content to a local disk orother persistent storage within or connected to the STB. SuchPVR/DVR-enabled devices are limited by their local storage capacity; andif streamed content is HD, then the disk space requirement can becritical, as HD content requires more disk space than SD content.

PVR/DVR-enabled devices can be connected in a network, such as amulti-room DVR (MR-DVR) implementation. For example, in an illustrativeMR-DVR implementation, a media server, such as a Multimedia over CoaxAlliance (MoCA) enabled DVR set-top box, can deliver DVR content toother MoCA-enabled client set-top boxes in other rooms throughout ahome.

If more than one PVR/DVR-enabled device wants to record the samecontent, then each one of those devices may create a copy of the samecontent in its local storage. This creates redundancy in a network, suchas a MR-DVR implementation, where content can be shared betweenconnected devices.

SUMMARY

In one embodiment of the present invention, a method is provided fordistributed recording of content in a client system having a homenetwork connecting a content broker and a plurality of set-top boxes(STBs) with digital video recording capability. In a requesting STB, acommand is received from a user to begin recording a content item. Aquery is sent from the requesting STB to the content broker to determinewhether the content item is being recorded by any other STB of theplurality of STBs. A response is received from the content broker. Ifthe response indicates that none of the plurality of STBs is thencurrently recording the content item, the content item is recorded inthe requesting STB. If the response identifies a recording STB that isthen currently recording the requested content, an internal content listis updated in the requesting STB to identify the recording STB.

In another embodiment of the present invention, a method is provided forplayback of distributed content in a client system having a home networkconnecting a content broker and a plurality of set-top boxes (STBs) withdigital video recording capability. In a requesting STB, a command isreceived from a user to begin playback of a content item. Adetermination is made of whether the content item was remotely recordedin a recording STB. If the content item was remotely recorded in arecording STB, the recording STB is contacted through the home networkto request streaming of the content item from the recording STB to therequesting STB. The content is received from the recording STB, and thereceived content is displayed to the user.

In a further embodiment of the present invention, a method is providedfor distributed recording of content in a client system having a homenetwork connecting a content broker and a plurality of set-top boxes(STBs) with digital video recording capability. In the content broker, aquery is received from a requesting STB to determine whether a contentitem is being recorded by any other STB of the plurality of STBs. Ifnone of the plurality of STBs is then currently recording the contentitem, a response is sent from the content broker to the requesting STBso that the content item can be recorded in the requesting STB. If arecording STB is then currently recording the requested content, aresponse is sent from the content broker to the requesting STBcomprising a device identifier associated with the recording STB.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that illustrates an exemplary contentdistribution system in accordance with an embodiment of the presentinvention.

FIG. 2 is a flow diagram that illustrates a method for distributedrecording of content according to an embodiment of the presentinvention.

FIG. 3 is a flow diagram that illustrates a method for playback ofdistributed content according to a further embodiment of the presentinvention.

DETAILED DESCRIPTION

Aspects of the present invention provide a method for distributedrecording of streamed content in PVR/DVR-enabled devices, making use ofthe networked device architecture for efficient use of storage.

Before describing in detail embodiments that are in accordance with thepresent invention, it should be observed that the embodiments resideprimarily in combinations of method steps and apparatus componentsrelated to a system and method for distributed recording of content.Accordingly, the apparatus components and method steps have beenrepresented where appropriate by conventional symbols in the drawings,showing only those specific details that are pertinent to understandingthe embodiments of the present invention so as not to obscure thedisclosure with details that will be readily apparent to those ofordinary skill in the art having the benefit of the description herein.

In this document, relational terms such as first and second, top andbottom, and the like may be used solely to distinguish one entity oraction from another entity or action without necessarily requiring orimplying any actual such relationship or order between such entities oractions. The terms “comprises,” “comprising,” or any other variationthereof, are intended to cover a non-exclusive inclusion, such that aprocess, method, article, or apparatus that comprises a list of elementsdoes not include only those elements but may include other elements notexpressly listed or inherent to such process, method, article, orapparatus. An element preceded by “comprises . . . a” does not, withoutmore constraints, preclude the existence of additional identicalelements in the process, method, article, or apparatus that comprisesthe element.

FIG. 1 illustrates an exemplary content distribution system 100 inaccordance with an embodiment of the present invention. However, it willbe understood by a person having ordinary skill in the art that aspectsof the invention can be practiced using a system having other than thespecific features or limitations of the illustrative contentdistribution system 100 described herein.

Content distribution system 100 includes a video server system 101 andat least one client system 111, the two of which are connected by anaccess network 110. For example, communication link 151A connects theserver system 101 to the access network 110, and communication link 151Bconnects the client system 111 to the access network 110. Conventionalcontent distribution systems typically include a plurality of clientsystems 111, not shown. The server system 101 stores, manages anddelivers video content requested by a client system 111 via the accessnetwork 110. Access network 110 and communication links 151A, 151B caninclude, for example, a transmission medium such as an optical fiber, acoaxial cable, a hybrid fiber coaxial (HFC) network, or other suitabletransmission media or wireless telecommunications.

The server system 101 typically is located in a headend (not shown) orother suitable location within the content distribution system 100. Theheadend typically is a regional or local hub that is part of a largerservice provider distribution system, such as a cable televisiondistribution system. The content distribution system 100 typically isbased on a central server architecture. In such an architecture, theserver system 101 typically is centrally located with respect to aplurality of client systems 111, and connects to each client system 111directly via a dedicated transmission medium (in some embodiments,communication link 151B) of access network 110. In other embodiments,the content distribution system 100 can be distributed; for example,content distribution system 100 can comprise a plurality of serversystems 101 located in one or more headends. In further embodiments, anexemplary server system 101 can include a plurality of servers,controllers, and/or processors, e.g., for encoding and distributingvideo content.

Server system 101 receives, through access network 110, requests from aclient system 111. Server system 101 and client system 111 exchangeinformation with one another through access network 110; for example, auser interface (UI) server (not shown) of server system 101 can sendinformation for presentation to a user 120, and the client system 111can send to the server system 101 information, commands, and the like,received in a set-top box (such as requesting STB 150) via an inputdevice 112 from user 120. In an embodiment, each client system 111 canbe associated with one or more users 120.

In an illustrative embodiment, server system 101 can receive requestsfor content (e.g., from client system 111), interpret the requests, pullrequested content (e.g., from a database), and deliver to client system111 a content package corresponding to the requested content. Forexample, the content package can be delivered via a video processor (notshown) in server system 101 that prepares and sends the data throughaccess network 110 following proper protocols.

Client system 111 includes a content broker 130 and a plurality ofset-top boxes, each connected to access network 110 and to one anotherby a home network, such as a network of coaxial cables. In anembodiment, at least two of the set-top boxes are PVR/DVR-enabled. Forillustrative purposes, a first one of the PVR/DVR-enabled set-top boxesis designated as a requesting STB 150, and a second one of thePVR/DVR-enabled set-top boxes is designated as a recording STB 140. Thedesignation of a requesting STB 150 and a recording STB 140 in FIG. 1does not mean that each STB has a dedicated function; rather, any of theSTBs in client system 111 can become either a requesting STB or arecording STB, if and when such functionality is required by a user 120.

The content broker 130 is a designated server in the home network thatincludes the plurality of set-top boxes. In an embodiment, contentbroker 130 can be included in one of the set-top boxes of client system111, such as receiving STB 140 or requesting STB 150, or another STB. Ina further embodiment, content broker 130 can be included in aresidential gateway device, or in a separate computing device.

The content broker 130 is able to store information such as metadatarelated to the ongoing recording of content in the network. Examples ofsuch metadata can include, for each item of content, a contentidentifier (e.g., a unique numeric value), a content name (e.g., anASCII string representing a name for the content, such as a program nameor episode title), a list of one or more device identifiers foridentifying the device (e.g., an STB) in which the recorded content isstored, and for each device identifier one or more duration values(e.g., indicating the duration of recorded content stored in eachdevice, or a beginning and ending byte offset or time offset for therecorded content).

In some embodiments, the content broker 130 can periodically broadcastsome or all of the metadata related to the ongoing recording of contentin the network. In other embodiments, metadata related to the ongoingrecording of content in the network can be queried by a requesting STB150 before the requesting STB 150 attempts to record the content.

For further illustrative purposes, the requesting STB 150 is shown to beconnected to an input device 112, and a display 116. Examples of display116 include a television or a monitor. For ease of illustration, onlyone input device 112 and one display 116 are depicted in FIG. 1;however, in a typical configuration, each of the set-top boxes in clientsystem 111 is similarly connected to a corresponding input device 112and display 116.

It will be understood by a person having ordinary skill in the art thatthe terminology “set-top” does not in any way limit the physicalplacement of a set-top box such as STBs 140, 150. That is, a set-top boxneed not be positioned on top of a television set. Each set-top box isany suitable signal processing device or system for processing videosignals, such as any signal converter or decoder (set-top) box, or othersuitable computing device or video device with set-top box and/or cablemodem capabilities, including a residential gateway, an internetprotocol (IP), satellite or cable digital video recorder, a digitalvideo disk (DVD) recorder, a computer, or a home media server system. Infurther embodiments, a set-top box can be a laptop, notebook, or tabletcomputer, or a mobile device, or can be built into the display 116. Anexemplary set-top box comprises a computing device that connects thedisplay 116 and an external signal source, turning the signal into acontent stream that the display 116 is able to render and display. Forexample, an exemplary set-top box can convert data signals toaudio/video content and output the data to display 116, and iscommunicatively coupled to the display 116 via a wired or wirelessconnection.

A set-top box and/or content server 130 can be completely or partiallyconfigured in the form of hardware circuitry and/or other hardwarecomponents within a larger device or group of components. Alternatively,a set-top box and/or content server 130 can be completely or partiallyconfigured in the form of software, e.g., as processing instructions orone or more sets of logic or computer code. In such configuration, thelogic or processing instructions typically are stored in a data storagedevice, which typically is coupled to a processor or controller. Boththe data storage device and the processor or controller can be includedas part of a set-top box, although such is not necessary. The processoror controller accesses the necessary instructions from the data storagedevice and executes the instructions or transfers the instructions tothe appropriate location within the set-top box.

An exemplary set-top box is able to receive input commands from acorresponding input device 112 and send requests embodied in the inputcommands through access network 110 to server system 101. As depicted inFIG. 1, a user 120 can operate input device 112 to send commands to arequesting STB 150. For example, user 120 can use input device 112 tocontrol a user interface (UI) application of requesting STB 150 (e.g.,for navigation and selection of content items from menus). Input device112 is communicatively coupled to the requesting STB 150 either via awired or wireless connection. In some embodiments, input device 112 canbe a remote control device. In further embodiments, input device 112 canbe a computer (e.g., a desktop, laptop, notebook, or tablet computer),or a mobile device or smartphone, and/or can be completely or partiallyconfigured in the form of software running on a computer. In stillfurther embodiments, input device 112 can be built into the requestingSTB 150. In an exemplary embodiment, upon receipt of input commands,such as changing to a new channel, the UI application causes therequesting STB 150 to send corresponding instructions upstream throughaccess network 110 to server system 101. Other set-top boxes in clientsystem 111, such as recording STB 140, are similarly able to receivecommands from a corresponding input device 112.

FIG. 2 is a flow diagram that illustrates a method 200 for distributedrecording of content according to an embodiment of the presentinvention.

In step 210, any PVR/DVR-enabled set-top box in client system 111attempts to begin recording a content item. For example, user 120 ofrequesting STB 150 uses input device 112 to request recording of acontent item (e.g., a movie or a television program) delivered from theserver system 101.

In step 220, the requesting STB 150 queries the content broker 130 todetermine whether the same content item is being recorded by any otherSTB in the client system 111. The request includes a device identifieruniquely identifying the requesting STB 150.

In step 230, the content broker 130 responds with information, such as adevice identifier that identifies a set-top box that is then currentlyrecording the requested content (i.e., recording STB 140); or, in thealternative, responds with information indicating that none of theset-top boxes in client system 111 is then currently recording therequested content.

In step 240, if the content broker 130 responds with informationindicating that none of the set-top boxes in client system 111 is thencurrently recording the requested content, then requesting STB 150begins recording the requested content, and notifies the content broker130 that it is doing so.

In step 250, if the content broker 130 responds with informationidentifying a set-top box that is then currently recording the requestedcontent (i.e., recording STB 140), then the requesting STB 150 does notstart recording, but instead updates an internal content list toidentify the remote recording. The internal content list stores theinformation received from content broker 130, such as the deviceidentifier that identifies a set-top box that is then currentlyrecording the requested content (e.g., recording STB 140).

In step 260, when recording is terminated in the recording STB 140(either by completion, or by a termination event such as a commandreceived from user 120), the content broker 130 notifies the requestingSTB 150 of the termination.

In step 270, if the requesting STB 150 determines that the duration ofthe recording in the recording STB 140 is less than the requestedrecording duration, then the requesting STB 150 begins recording theremaining duration of the content in its local storage.

FIG. 3 is a flow diagram that illustrates a method 300 for playback ofdistributed content according to an embodiment of the present invention.

In step 310, any PVR/DVR-enabled set-top box in client system 111attempts to begin playing a remotely recorded content item. For example,user 120 of requesting STB 150 uses input device 112 to request playbackof a content item (e.g., a movie or a television program) which waspreviously requested by the requesting STB 150. It is noted that at step250, the requesting STB 150 internally stored information received fromcontent broker 130, such as the device identifier that identifies aset-top box that was then-currently recording the requested content(e.g., recording STB 140). Accordingly, the requesting STB 150 does notneed to contact the content broker 130 to obtain this information at thetime the user 120 requests playback of the content item.

In step 320, the requesting STB 150 contacts the recording STB 140through the home network and requests streaming of the content from therecording STB 140 to the requesting STB 150.

In step 330, the streaming content from the recording STB 140 isdisplayed by the requesting STB 150 to the user 120 (e.g., on display116).

In step 340, if the requesting STB 150 determines that the duration ofthe recording in the recording STB 140 was less than the requestedrecording duration, then the requesting STB 150 begins playing back theremaining duration of the content from its local storage and displaysthe remaining duration of the content to the user 120 (e.g., on display116).

In the foregoing specification, specific embodiments of the presentinvention have been described. However, one of ordinary skill in the artappreciates that various modifications and changes can be made withoutdeparting from the scope of the present invention as set forth in theclaims below. Accordingly, the specification and figures are to beregarded in an illustrative rather than a restrictive sense, and allsuch modifications are intended to be included within the scope ofpresent invention. The benefits, advantages, solutions to problems, andany element(s) that may cause any benefit, advantage, or solution tooccur or become more pronounced are not to be construed as a critical,required, or essential features or elements of any or all the claims.The invention is defined solely by the appended claims including anyamendments made during the pendency of this application and allequivalents of those claims as issued.

What is claimed is:
 1. A computer-implemented method executed by one ormore processors, the method comprising: identifying, by a first set-topbox (STB) of a plurality of STBs connected by a first network, a requestfor a particular content item available from a content server, whereinthe first STB is connected to the content server by a second networkdifferent than the first network; in response to identifying the requestfor the particular content item, determining, by the first STB, that theparticular content item is available from a second STB of the pluralityof STBs; and in response to determining that the particular content itemis available from the second STB, transferring, by the first STB, theparticular content item from the second STB over the first network. 2.The method of claim 1, wherein determining that the particular contentitem is available from the second STB includes querying a content brokerfor STBs of the plurality of STBs from which the particular content itemis available.
 3. The method of claim 1, further comprising storing theparticular content item at the first STB after transferring theparticular content item from the second STB.
 4. The method of claim 1,wherein the request for the particular content item is a request torecord the particular content item, the method further comprising: inresponse to transferring the particular content item from the secondSTB, storing, by the first STB, the particular content item.
 5. Themethod of claim 1, wherein the request for the particular content itemis a request to play the particular content item, and transferring, bythe first STB, the particular content item from the second STB includesstreaming the particular content item from the second STB over the firstnetwork for presentation on a display device associated with the firstSTB.
 6. The method of claim 1, wherein the request for the particularcontent item includes a user command received by the first STB.
 7. Themethod of claim 1, wherein the request to record the particular contentitem represents a scheduled recording of the particular content item. 8.The method of claim 1, wherein determining that the particular contentitem is available from the second STB includes determining that thesecond STB is currently recording the particular content item.
 9. Themethod of claim 1, wherein determining that the particular content itemis available from the second STB includes determining that the secondSTB has previously recorded the particular content item.
 10. Anon-transitory, computer-readable medium storing instructions operablewhen executed to cause at least one processor to perform operationscomprising: identifying, by a first set-top box (STB) of a plurality ofSTBs connected by a first network, a request for a particular contentitem available from a content server, wherein the first STB is connectedto the content server by a second network different than the firstnetwork; in response to identifying the request for the particularcontent item, determining, by the first STB, that the particular contentitem is available from a second STB of the plurality of STBs; and inresponse to determining that the particular content item is availablefrom the second STB, transferring, by the first STB, the particularcontent item from the second STB over the first network.
 11. Thecomputer-readable medium of claim 10, wherein determining that theparticular content item is available from the second STB includesquerying a content broker for STBs of the plurality of STBs from whichthe particular content item is available.
 12. The computer-readablemedium of claim 10, the operations further comprising storing theparticular content item at the first STB after transferring theparticular content item from the second STB.
 13. The computer-readablemedium of claim 10, wherein the request for the particular content itemis a request to record the particular content item, thecomputer-readable medium further comprising: in response to transferringthe particular content item from the second STB, storing, by the firstSTB, the particular content item.
 14. The computer-readable medium ofclaim 10, wherein the request for the particular content item is arequest to play the particular content item, and transferring, by thefirst STB, the particular content item from the second STB includesstreaming the particular content item from the second STB over the firstnetwork for presentation on a display device associated with the firstSTB.
 15. The computer-readable medium of claim 10, wherein the requestfor the particular content item includes a user command received by thefirst STB.
 16. The computer-readable medium of claim 10, wherein therequest to record the particular content item represents a scheduledrecording of the particular content item.
 17. The computer-readablemedium of claim 10, wherein determining that the particular content itemis available from the second STB includes determining that the secondSTB is currently recording the particular content item.
 18. Thecomputer-readable medium of claim 10, wherein determining that theparticular content item is available from the second STB includesdetermining that the second STB has previously recorded the particularcontent item.
 19. A system comprising: memory for storing data; and oneor more processors operable to perform operations comprising:identifying, by a first set-top box (STB) of a plurality of STBsconnected by a first network, a request for a particular content itemavailable from a content server, wherein the first STB is connected tothe content server by a second network different than the first network;in response to identifying the request for the particular content item,determining, by the first STB, that the particular content item isavailable from a second STB of the plurality of STBs; and in response todetermining that the particular content item is available from thesecond STB, transferring, by the first STB, the particular content itemfrom the second STB over the first network.
 20. The system of claim 19,wherein determining that the particular content item is available fromthe second STB includes querying a content broker for STBs of theplurality of STBs from which the particular content item is available.